In order to enhance user experience in a computer network, for example, the Internet, frequently accessed content or services may be replicated on more than one node (hereinafter referred to as a “replicated node”), often located at different geographic locations. A request for content or a service may then be dynamically redirected or re-routed between the replicated nodes in order to improve user experience. For example, if one node is not functioning at all, the request may be redirected to one of the replicated nodes which is still functioning. Another way of improving user experience includes determining the proximity between a client node making the request to each of the replicated nodes, and then redirecting the request to the replicated node that is nearest the client node. In this way, a latency perceived by the client node in order to receive a reply to the request is reduced.
One problem with redirecting the request as described above is that the nearest node may currently be the most overloaded node in the network, and thus instead of improving user experience, redirection to that node may actually further degrade user experience.